================================================================================ NGINX/1.24.0 (Ubuntu) -------------------------------------------------------------------------------- - host OS : Ubuntu 24.04.4 LTS (Desktop) - backlog : 4,096 - ports range : 1,025-65,535 (allowed:64,510 on 65,535) - max sockets : 1,048,576 (soft:1,024 hard:1,048,576) - CPU model : 13th Gen Intel(R) Core(TM) i9-13900K - CPU cores : 32 online (as setup by BIOS/OS/VM) - CPU freq (GHz) : seen[0.799-5.500] capable[0.8-5.8] - CPU power : performance, performance - listening on : http://127.0.0.1:80 - hosts to serve : hosts:1, alias:0, errors:0 (5 files, 11.9 KB) /var/www/html ================================================================================ prlimit --pid=$$ --nofile=1048576 sudo prlimit --pid=$$ --nproc=1048576 sudo ufw disable ================================================================================ wrk3 tests summary: -------------------------------------------------------------------------------- G-WAN RPS NGINX RPS G-WAN is N times faster ----- ------------------- ------------------ ----------------------- users 10s 30s 3m 30m 10s 30s 3m 30m (all 4 tests combined) ----- ------------------- ------------------ ----------------------- 1 151k 142k 152k 141k 104k 103k 103k 104k 586 / 141 = 1.42 10 977k 996k 945k 927k 623k 616k 608k 601k 3845 / 2448 = 1.57 1k 2.0m 1.9m 1.8m 1.8m 1.0m 963k 964k 956k 7.6m / 3.9m = 1.93 10k 3.4m 1.8m 896k 729k 789k 729k 696k 716k 6.8m / 2930 = 2,334.73 20k 5.6m 3.7m 1.0m 713k 755k 724k 671k 682k 11.1m / 2832 = 3,948.96 30k 9.0m 4.2m 1.1m 723k Terminated (OOM) 15.1m / 0 = infinite 40k 15.0m 5.8m 2.1m 723k Terminated (OOM) 23.6m / 0 = infinite NOTES: G-WAN is [1.42 to 3,948] times faster than NGINX with [1-20k] users. G-WAN keeps going while NGINX has to stop, due to a lack of memory (the wrk family architecture consumes 190 GB RAM at 30-40k users). G-WAN on 30 minutes is >= NGINX on 10 seconds - on all concurrencies. G-WAN runs marathons faster than NGINX 100m sprints with [1-20k users]. So G-WAN is faster than NGINX at short, middle and long test runs, beating the market leader (with the wrk NGINX benchmark) for the 100m sprint, 5000m, half-marathon, and marathon competitions. ================================================================================ Tests comment: -------------------------------------------------------------------------------- The "Req/Sec" latencies are nul due to the fact that wrk3 has disabled the wrk2 thread calibration... that was taking 99.99% of the benchmark duration - with the result of artificially boosting wrk2 scores by making bogus calculations, see: http://gwan.com/blog/20260414.html The HTTP request "Latency" measured by wrk2 and wrk3 are the ones of the client and not the ones of the server, if the benchmark tool is slower than the tested server. This is due to the architecture of the wrk tools family, where "ready" connections are waiting for their turn, queued in an event-loop. ================================================================================ NGINX starting memory footprint: 148.4 MB (with www storing 5 files, 11.9 KB) -------------------------------------------------------------------------------- ./gwan -p ng - running nginx process(es): PID THRDS %CPU VIRT RSS SHRD EXE 2575 1 0.0 20.9 MB 1.7 MB 1.0 MB nginx: master process /usr/sbin/nginx -g daemon on; master_process on; 2576 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2577 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2578 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2579 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2580 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2581 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2582 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2583 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2584 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2585 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2586 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2588 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2589 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2590 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2591 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2592 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2593 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2594 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2595 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2596 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2597 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2598 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2599 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2600 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2601 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2602 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2603 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2604 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2605 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2606 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2607 1 0.0 22.9 MB 4.5 MB 2.8 MB nginx: worker process 2608 1 0.0 22.9 MB 4.4 MB 2.8 MB nginx: worker process Total: 1.7 + (31 * 4.5) + 4.4 + 2.8 = 148.4 MB ================================================================================ ./wrk3 -t1 -c1 -R1m "http://127.0.0.1:8080/100.html" -------------------------------------------------------------------------------- ./wrk3 -d10s -t1 -c1 -R10m "http://127.0.0.1:80/100.html" Created 1 event-loop(s) in 0.000 seconds Created 1 thread(s) in 0.000 seconds Running 10s test @ http://127.0.0.1:80/100.html 1 threads and 1 connections Thread Stats Avg Stdev Max +/- Stdev Latency 4.96s 2.85s 9.90s 0.02% Req/Sec -nan -nan 0.00 0.00% 1,042,784 requests in 10.00s, 344.08MB read Requests/sec: 104,278.31 Transfer/sec: 34.41MB -------------------------------------------------------------------------------- ./wrk3 -d30s -t1 -c1 -R10m "http://127.0.0.1:80/100.html" Created 1 event-loop(s) in 0.000 seconds Created 1 thread(s) in 0.000 seconds Running 30s test @ http://127.0.0.1:80/100.html 1 threads and 1 connections Thread Stats Avg Stdev Max +/- Stdev Latency 14.85s 8.57s 29.70s 0.04% Req/Sec -nan -nan 0.00 0.00% 3,111,527 requests in 30.00s, 1.00GB read Requests/sec: 103,717.56 Transfer/sec: 34.22MB -------------------------------------------------------------------------------- ./wrk3 -d3m -t1 -c1 -R10m "http://127.0.0.1:80/100.html" Created 1 event-loop(s) in 0.000 seconds Created 1 thread(s) in 0.000 seconds Running 3m test @ http://127.0.0.1:80/100.html 1 threads and 1 connections Thread Stats Avg Stdev Max +/- Stdev Latency 1.48m 0.86m 2.97m 0.06% Req/Sec -nan -nan 0.00 0.00% 18,691,536 requests in 3.00m, 6.02GB read Requests/sec: 103,841.86 Transfer/sec: 34.26MB -------------------------------------------------------------------------------- ./wrk3 -d30m -t1 -c1 -R10m "http://127.0.0.1:80/100.html" Created 1 event-loop(s) in 0.000 seconds Created 1 thread(s) in 0.000 seconds Running 30m test @ http://127.0.0.1:80/100.html 1 threads and 1 connections Thread Stats Avg Stdev Max +/- Stdev Latency 14.86m 8.57m 29.69m 0.04% Req/Sec -nan -nan 0.00 0.00% 187,236,689 requests in 30.00m, 60.33GB read Requests/sec: 104,020.38 Transfer/sec: 34.32MB ================================================================================ ./wrk3 -t10 -c10 -R10m "http://127.0.0.1:8080/100.html" -------------------------------------------------------------------------------- ./wrk3 -d10s -t10 -c10 -R10m "http://127.0.0.1:80/100.html" Created 10 event-loop(s) in 0.000 seconds Created 10 thread(s) in 0.000 seconds Running 10s test @ http://127.0.0.1:80/100.html 10 threads and 10 connections Thread Stats Avg Stdev Max +/- Stdev Latency 4.75s 2.67s 9.40s 0.04% Req/Sec -nan -nan 0.00 0.00% 6,235,697 requests in 10.00s, 2.01GB read Requests/sec: 623,569.11 Transfer/sec: 205.76MB -------------------------------------------------------------------------------- ./wrk3 -d30s -t10 -c10 -R10m "http://127.0.0.1:80/100.html" Created 10 event-loop(s) in 0.000 seconds Created 10 thread(s) in 0.000 seconds Running 30s test @ http://127.0.0.1:80/100.html 10 threads and 10 connections Thread Stats Avg Stdev Max +/- Stdev Latency 14.11s 8.16s 28.18s 0.05% Req/Sec -nan -nan 0.00 0.00% 18,490,677 requests in 30.00s, 5.96GB read Requests/sec: 616,355.77 Transfer/sec: 203.38MB -------------------------------------------------------------------------------- ./wrk3 -d3m -t10 -c10 -R10m "http://127.0.0.1:80/100.html" Created 10 event-loop(s) in 0.000 seconds Created 10 thread(s) in 0.000 seconds Running 3m test @ http://127.0.0.1:80/100.html 10 threads and 10 connections Thread Stats Avg Stdev Max +/- Stdev Latency 1.40m 48.69s 2.82m 0.02% Req/Sec -nan -nan 0.00 0.00% 109,614,873 requests in 3.00m, 35.32GB read Requests/sec: 608,971.48 Transfer/sec: 200.94MB -------------------------------------------------------------------------------- ./wrk3 -d30m -t10 -c10 -R10m "http://127.0.0.1:80/100.html" Created 10 event-loop(s) in 0.000 seconds Created 10 thread(s) in 0.000 seconds Running 30m test @ http://127.0.0.1:80/100.html 10 threads and 10 connections Thread Stats Avg Stdev Max +/- Stdev Latency 14.11m 8.15m 28.21m 0.05% Req/Sec -nan -nan 0.00 0.00% 1,082,183,769 requests in 30.00m, 348.72GB read Requests/sec: 601,213.20 Transfer/sec: 198.38MB ================================================================================ ./wrk3 -t1k -c1k -R10m "http://127.0.0.1:8080/100.html" -------------------------------------------------------------------------------- ./wrk3 -d10s -t1k -c1k -R10m "http://127.0.0.1:80/100.html" Created 1,000 event-loop(s) in 0.052 seconds Created 1,000 thread(s) in 0.027 seconds Running 10s test @ http://127.0.0.1:80/100.html 1,000 threads and 1,000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 4.47s 2.59s 9.11s 0.04% Req/Sec -nan -nan 0.00 0.00% 10,640,587 requests in 10.00s, 3.43GB read Requests/sec: 1,063,995.46 Transfer/sec: 351.08MB -------------------------------------------------------------------------------- ./wrk3 -d30s -t1k -c1k -R10m "http://127.0.0.1:80/100.html" Created 1,000 event-loop(s) in 0.058 seconds Created 1,000 thread(s) in 0.015 seconds Running 30s test @ http://127.0.0.1:80/100.html 1,000 threads and 1,000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 13.58s 7.86s 27.41s 0.05% Req/Sec -nan -nan 0.00 0.00% 28,917,874 requests in 30.00s, 9.32GB read Requests/sec: 963,885.59 Transfer/sec: 318.05MB -------------------------------------------------------------------------------- ./wrk3 -d3m -t1k -c1k -R10m "http://127.0.0.1:80/100.html" Created 1,000 event-loop(s) in 0.052 seconds Created 1,000 thread(s) in 0.036 seconds Running 3m test @ http://127.0.0.1:80/100.html 1,000 threads and 1,000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 1.35m 46.57s 2.73m 0.02% Req/Sec -nan -nan 0.00 0.00% 173,663,291 requests in 3.00m, 55.96GB read Requests/sec: 964,792.96 Transfer/sec: 318.35MB -------------------------------------------------------------------------------- ./wrk3 -d30m -t1k -c1k -R10m "http://127.0.0.1:80/100.html" Created 1,000 event-loop(s) in 0.056 seconds Created 1,000 thread(s) in 0.027 seconds Running 30m test @ http://127.0.0.1:80/100.html 1,000 threads and 1,000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 13.60m 7.82m 27.21m 0.05% Req/Sec -nan -nan 0.00 0.00% 1,721,783,990 requests in 30.00m, 554.82GB read Requests/sec: 956,546.39 Transfer/sec: 315.63MB ================================================================================ ./wrk3 -t10k -c10k -R10m "http://127.0.0.1:8080/100.html" -------------------------------------------------------------------------------- ./wrk3 -d10s -t10k -c10k -R10m "http://127.0.0.1:80/100.html" Created 10,000 event-loop(s) in 2.215 seconds Created 10,000 thread(s) in 0.348 seconds Running 10s test @ http://127.0.0.1:80/100.html 10,000 threads and 10,000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 4.65s 2.72s 9.47s 0.03% Req/Sec -nan -nan 0.00 0.00% 7,896,215 requests in 10.00s, 2.54GB read Requests/sec: 789,263.92 Transfer/sec: 260.43MB -------------------------------------------------------------------------------- ./wrk3 -d30s -t10k -c10k -R10m "http://127.0.0.1:80/100.html" Created 10,000 event-loop(s) in 2.234 seconds Created 10,000 thread(s) in 0.340 seconds Running 30s test @ http://127.0.0.1:80/100.html 10,000 threads and 10,000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 13.92s 8.06s 29.08s 0.04% Req/Sec -nan -nan 0.00 0.00% 21,880,500 requests in 30.00s, 7.05GB read Requests/sec: 729,239.63 Transfer/sec: 240.63MB -------------------------------------------------------------------------------- ./wrk3 -d3m -t10k -c10k -R10m "http://127.0.0.1:80/100.html" Created 10,000 event-loop(s) in 2.229 seconds Created 10,000 thread(s) in 0.308 seconds Running 3m test @ http://127.0.0.1:80/100.html 10,000 threads and 10,000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 1.37m 48.49s 2.81m 0.02% Req/Sec -nan -nan 0.00 0.00% 125,433,095 requests in 3.00m, 40.42GB read Requests/sec: 696,838.23 Transfer/sec: 229.93MB -------------------------------------------------------------------------------- ./wrk3 -d30m -t10k -c10k -R10m "http://127.0.0.1:80/100.html" Created 10,000 event-loop(s) in 2.253 seconds Created 10,000 thread(s) in 0.306 seconds Running 30m test @ http://127.0.0.1:80/100.html 10,000 threads and 10,000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 14.14m 7.99m 27.93m 0.05% Req/Sec -nan -nan 0.00 0.00% 1,289,385,088 requests in 30.00m, 415.48GB read Requests/sec: 716,323.62 Transfer/sec: 236.36MB ================================================================================ ./wrk3 -t20k -c20k -R10m "http://127.0.0.1:8080/100.html" -------------------------------------------------------------------------------- ./wrk3 -d10s -t20k -c20k -R10m "http://127.0.0.1:80/100.html" Created 20,000 event-loop(s) in 8.242 seconds Created 20,000 thread(s) in 0.555 seconds Running 10s test @ http://127.0.0.1:80/100.html 20,000 threads and 20,000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 4.68s 2.74s 9.55s 0.03% Req/Sec -nan -nan 0.00 0.00% 7,806,845 requests in 10.01s, 2.52GB read Requests/sec: 780,036.53 Transfer/sec: 257.39MB -------------------------------------------------------------------------------- ./wrk3 -d30s -t20k -c20k -R10m "http://127.0.0.1:80/100.html" Created 20,000 event-loop(s) in 8.404 seconds Created 20,000 thread(s) in 0.555 seconds Running 30s test @ http://127.0.0.1:80/100.html 20,000 threads and 20,000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 13.81s 8.05s 28.64s 0.04% Req/Sec -nan -nan 0.00 0.00% 21,729,454 requests in 30.01s, 7.00GB read Non-2xx or 3xx responses: 32 ......................................... ERRORS Requests/sec: 724,085.19 Transfer/sec: 238.93MB -------------------------------------------------------------------------------- ./wrk3 -d3m -t20k -c20k -R10m "http://127.0.0.1:80/100.html" Created 20,000 event-loop(s) in 8.314 seconds Created 20,000 thread(s) in 0.569 seconds Running 3m test @ http://127.0.0.1:80/100.html 20,000 threads and 20,000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 1.37m 48.87s 2.84m 0.03% Req/Sec -nan -nan 0.00 0.00% 120,891,786 requests in 3.00m, 38.96GB read Non-2xx or 3xx responses: 85 ......................................... ERRORS Requests/sec: 671,606.49 Transfer/sec: 221.61MB -------------------------------------------------------------------------------- ./wrk3 -d30m -t20k -c20k -R10m "http://127.0.0.1:80/100.html" Created 20,000 event-loop(s) in 8.378 seconds Created 20,000 thread(s) in 0.559 seconds Running 30m test @ http://127.0.0.1:80/100.html 20,000 threads and 20,000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 14.27m 8.07m 28.05m 0.05% Req/Sec -nan -nan 0.00 0.00% 1,229,309,960 requests in 30.00m, 396.12GB read Non-2xx or 3xx responses: 108 ........................................ ERRORS Requests/sec: 682,948.22 Transfer/sec: 225.35MB ================================================================================ ./wrk3 -t30k -c30k -R10m "http://127.0.0.1:8080/100.html" -------------------------------------------------------------------------------- Terminated (by the kernel OOM kill-switch, NGINX + wrk3 use more than 190 GB RAM) -------------------------------------------------------------------------------- Terminated (by the kernel OOM kill-switch, NGINX + wrk3 use more than 190 GB RAM) -------------------------------------------------------------------------------- Terminated (by the kernel OOM kill-switch, NGINX + wrk3 use more than 190 GB RAM) ================================================================================ ./wrk3 -t40k -c40k -R10m "http://127.0.0.1:8080/100.html" -------------------------------------------------------------------------------- Terminated (by the kernel OOM kill-switch, NGINX + wrk3 use more than 190 GB RAM)